package com.sjz.htmlUI;

import java.util.List;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import com.sjz.bean.Contact;
import com.sjz.service.ContactService;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.webkit.WebView;

public class HtmlUIActivity extends Activity {
	  private WebView webView;//对象的作用是把html嵌入到页面中
	 private ContactService contactService;  //服务对象  得到所有的数据  这里是服务中写死的 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        webView = (WebView) this.findViewById(R.id.webView); //初始化对象
        webView.loadUrl("file:///android_asset/index.html");//嵌入的页面
        webView.getSettings().setJavaScriptEnabled(true); //设置浏览器可以执行java代码
        
        //这个是把嵌入的页面 添加自定义的对象 第一个参数 嵌入的对象   第二个参数是在页面上为对象起的名字  
        webView.addJavascriptInterface(new JSObject(), "contact");
        
        contactService = new ContactService();
        
    }
    
    
    /****
     * 创建内部类
     * 嵌入的页面   添加自定义的对象     
     *
     */
 private final class JSObject{
    	
	 /****
	  *  如果点击号码来进行拨号的话，需要通过页面调用一个后端定义的方法call来把手机号传递给后台，后台
                        来通过意图来进行拨打电话
	  * @param phone
	  */
    	public void call(String phone){
    		//第一个参数  动作类型  第二个参数 路径 
    		Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+ phone));
    		startActivity(intent);//启动意图的服务
    	}
    	
    	
    	/****
    	 * 页面中，可以调用的方法   这个是页面一加载的时候，调用的方法  初始数据  
    	 * 然后在页面上的show方法来得到查询的数据，前端页面进行处理
    	 */
    	public void showcontacts(){
    		//  [{name:"xxx",amount:600,phone:"13988888"},{name:"bb",amount:200,phone:"1398788"}]
    		try {
				List<Contact> contacts = contactService.getContacts();//得到通讯录对象数据 
				JSONArray jsonArray = new JSONArray();
				for(Contact c : contacts){
					JSONObject jsonObject = new JSONObject();
					jsonObject.put("name", c.getName());
					jsonObject.put("amount", c.getAmount());
					jsonObject.put("phone", c.getPhone());
					jsonArray.put(jsonObject);
				}
				String json = jsonArray.toString();//循环后，得到通讯录的json字符串
				webView.loadUrl("javascript:show('"+ json+ "')");//这个是页面调用show方法的时候，会把拼接的值传递到页面
			} catch (JSONException e) {
				e.printStackTrace();
			}
    	}
    }
}